# TODO 逻辑运算符
'''
a = True
b = False
# and 两个值必须为真 结果才为真
print(a and b) #False

# or一个值为真 结果就为真
print(a or b) #True

# not 结果取反
print(not a)  #False
print(not b)  #True
'''

# 逻辑运算符的条件使用
# 网吧上网条件: 1.有身份证 2.年龄>=18
'''
id_card = True  # 有否有身份证
age = 19        #定义年龄
print(id_card, age >= 18)
'''
# TODO 其他数据类型当做Bool类型处理
# 0 空字符串 None 空列表 空字典 空元组 空集合 都是False
# 其他数据类型都是 True
# 短路
# and
print(0 and 1) # 输出0  and要求两个为真 因为0是False 所以就直接输出0
print(1 and 0) # 输出0  and要求两个为真 前面1是True 就要验证后面的0 ,0是False 所以就直接输出0
print(1 and 2) # 输出2
print(2 and 1) # 输出1

# or
print(0 or 1) # 输出1
print(1 or 0) # 输出1

# not
print(not 0) #输出True
print(not 1) #输出False
print(not '') #输出True
print(not None) #输出True

# TODO 优先级
# 网吧上网条件:1.有身份证 2.年龄大于等于18
is_card = True   # 是否有身份证
age = 17        # 定义年龄
print(is_card and (age >= 18))  #age包裹的括号是为了增加可读性

print((1 + 2) * 10)  #给这个(1 + 2)加了括号后就可以先＋再乘 通常是先乘除后加减



